Coc.nvimを触ってみようアドベントカレンダー 6日目 – coc-diagnostic
Coc.nvimを触ってみよう Advent Calendar 2021 6日目です。
今回は coc-diagnostic
です。
coc-diagnostic について
diagnostic-languageserver のcoc.nvim拡張です。diagnostic-languageserver自体はlinter及び整形を実際に行うコマンドとの非同期の繋ぎとなる仕組みなので、
コマンド⇔diagnostic-languageserver⇔coc-diagnostic
の関係で連携していることになります。
coc-diagnostic をインストールする
vimを起動した状態で以下のコマンドを実行します。
:CocInstall coc-diagnostic
使ってみる
基本は diagnostic-languageserver.**
にて指定を入れて行きます。coc-diagnosticのREADMEに利用できるOptionと指定可能な値が全て記載されているため、特に迷うことはないはずです。
"diagnostic-languageserver.filetypes": { "vim": "vint", "email": "languagetool", "markdown": [ "write-good", "markdownlint" ], "sh": "shellcheck", "elixir": ["mix_credo", "mix_credo_compile"], "eelixir": ["mix_credo", "mix_credo_compile"], "php": ["phpstan", "psalm"], "yaml": [ "yamllint" ], "cmake": [ "cmake-lint", "cmakelint" ], "systemd": "systemd-analyze", }
この diagnostic-languageserver指定はLinter一覧に掲載されている設定をcoc-diagnosticが内部所持することにより、ファイルタイプのみ指定で動作することを実現しています。
内包していない場合もcoc-settings.json内に languageserver
プロパティで独自指定可能です。
例として、以前掲載した以下記事のactionlintがあります。
あとがき
独自Linterや、設定がまだ書き起こされていないLinterを適用させたい場合には動作検証が必要になりますが、メジャーな言語については基本ファイルタイプを指定するだけで動作します。coc.nvimをどう使うか迷ったときにはまずcoc-diagnosticを入れてみましょう。